home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Suzy B Software 2
/
Suzy B Software CD-ROM 2 (1994).iso
/
extras
/
falcon
/
scrdump
/
source
/
0_readme.src
next >
Wrap
Text File
|
1995-04-27
|
6KB
|
194 lines
XALTHELP/SCRDUMP, GEMDUMP Sourcen
V1.0, 20.4.1994
geschrieben von Th. Morus Walter
(c) 1994 by Never Ready Software, Morus Walter
Th. Morus Walter
Schulstr. 22
93080 Pentling
e-mail: morus.walter@rphs1.physik.uni-regensburg.de
------
Die Sourcen zu XALTHELP/SCRDUMP und GEMDUMP dürfen unter den folgenden
Bedingungen weitergegeben, verändert und/oder ganz oder teilweise für
eigene Programme verwendet werden:
1. Weitergabe ist nur vollständig und mit dieser Datei erlaubt
2. Veränderte Versionen von XALTHELP/SCRDUMP bzw. GEMDUMP dürfen nur
weitergegeben werden, wenn hinreichend deutlich gemacht wird, da₧
die Programme verändert wurden.
Änderung des Namens, Hinweise in der Dokumentation, im Programm...
Es mu₧ in geeigneter Weise auf die ursprüngliche Urheberschaft der
Programme hingewiesen werden.
ist in geeigneter Weise zu
Einer Veröffentlichung geänderter Versionen ist die Kontaktaufnahme
mit mir - um die Änderung allgemein zu Übernehmen - vorzuziehen.
Adresse siehe LIESMICH.TXT zum Programm
3. die Übernahme von Programmteilen in eigene Programme ist erlaubt.
Dabei mu₧ in geeigneter Weise auf die Verwendung meiner Routinen
und deren Urheber verwiesen werden.
4. die obigen Festlegungen sind nicht wörtlich sondern ihrem Sinne
entsprechend (was natürlich letztenende umfassender ist) zu
befolgen
(kurz: geht anständig mit meinen Quellen um)
ACHTUNG!
Der Autor übernimmt keinerlei Haftung für irgendwelche Schäden.
Eventuelle Fehler sind das Risiko derer, die die Sourcen verwenden.
-----
XALTHELP/SCRDUMP und GEMDUMP wurde mit PureC 1.0 und PASM V'was wei₧ ich'
entwickelt.
Für die Verwendung anderer Compiler sind möglicherweise Anpassungen nötig.
Man beachte insbesondere die Parameterübergabe in Registern von PureC.
Die Quellen enthalten echte Tabulatoren. Die Tabulatorweite mit der ich
arbeite ist 4.
Die Quellen sind dokumentiert - allerdings nur knapp.
Wer gar nichts versteht, lasse besser die Finger davon.
Wer etwas nicht versteht,
denke darüber nach.
Wer etwas nicht versteht, darüber nachgedacht hat
und es immer noch nicht versteht
probiere es aus.
Wer etwas nicht versteht, darüber nachgedacht hat, es ausprobiert hat
und es immer noch nicht versteht
wende sich gegebenenfalls an mich.
-----
Die Sourcen für XALTHELP/SCRDUMP und GEMDUMP sind (teilweise) gemeinsam.
Unterschieden wird dann via bedingter Compilierung, für GEMDUMP mu₧
in den Compileroptionen die Variable 'GEMDUMP' definiert werden.
Folgende Sourcen existieren:
GEMDUMP.S fehlt, kann aber aus PC_START.S erzeugt werden; s.u.
(nur für GEMDUMP)
SDUMP.C Code für den Hauptdialog, Verwaltung des Acc's
(GEMDUMP/SCRDUMP)
SCRDUMP.C eigentliche Speicherroutine
für eigene Programme dürfte vor allem die
Routine 'do_store_img' interessant sein,
die eine durch eine MFDB beschriebene Bitmap
in eine .IMG Datei schreibt.
(GEMDUMP/XALTHELP)
START.S Startupcode und Assemblerroutinen (nur XALTHELP)
Die Datei GEM.H im Ordner 'include' wird via >include "GEM.H"< eingelesen,
also bei den System-Include-Dateien gesucht; die Datei enthält allgemeine
Makros zum Umgang mit AES-objects.
Im Ordner 'rsc' finden sich die Resource-Files, von denen aber nur der
Source-Output im Programm Verwendung findet.
--------------------------------------------------------------------------------
--
-- wir basteln uns eine Source-Datei
--
--------------------------------------------------------------------------------
Aus urheberrechtlichen Gründen fehlt die Datei 'GD_START.S', da es sich
hierbei im Wesentlichen um die PC_START.S-Datei handelt und ich keine
Lust auf Urheberrechts-Streitigkeiten mit Borland habe.
Um aus der PC_START.S Datei eine GD_START.S zu machen gehe man wie folgt
vor:
- kopiere PC_START.S nach GD_START.S
- füge bei den 'Export references' (ca. Zeile 11) ein:
XDEF ev_time,inst
XDEF do_init_vbl,do_exit_vbl,althelp,ah_time
- nach
'Start:
BRA.B Start0'
(ca. Zeile 141) füge man ein:
ev_time: DC.W 100
DC.L 'TMMW'
inst: DC.B "C:\TEMP\SCRDUMP\SCR",0," " ; 40 Byte!!!!
DC.B 1
DC.B 1
even
- ans Ende der Datei füge man (vor .END) ein
;-------------------------------
even
;
; vbl eintragen (wird im supervisor-modus aufgerufen)
;
do_init_vbl:MOVE.W $454,D0
LSL.W #2,D0
MOVE.L $456,A0
MOVEQ #4,D1 ; ersten eintrag auslassen
sloop: TST.L 0(A0,D1)
BEQ.B found_
ADDQ.W #4,D1
CMP.W D0,D1 ; genial ist die schleife aber nicht!!!
BNE.B sloop ; warum nicht d0 runterzählen, A0 um 4 erhöhen?
CLR.L D0 ; war wohl nichts
RTS ; ganzer vbl belegt, da kann man nichts machen
found_: LEA vbl,A1
MOVE.L A1,0(A0,D1)
; kb_shift-adresse ermitteln
MOVE.L $4F2,A0 ; sysbase
CLR.L kbshift
CMP.W #$0104,2(A0) ; versionsnummer
BLT no_kbshift
MOVE.L 36(A0),kbshift ; kbshift-adresse merken (TOS1.4 required!!)
no_kbshift: MOVEQ #1,D0 ; war erfolgreich
RTS
;
; vbl-routine löschen
;
do_exit_vbl:MOVE.W $454,D0
LSL.W #2,D0
MOVE.L $456,A0
MOVE.W #4,D1
LEA vbl,A1
sloop1: CMPA.L 0(A0,D1),A1
BEQ.S found1
ADDQ.W #4,D1
CMP.W D0,D1
BNE.S sloop1
CLR.L D0
RTS
found1: CLR.L 0(A0,D1)
MOVEQ #1,D0
RTS
;
; vbl-routine
; ALT HELP -> setze althelp flag, ah_time
; CTRL ALT HELP -> mache nichts (-> tos-hcopy) (ab tos1.4)
;
vbl: TST.W $4EE ; dumpflag ?
BNE end_vbl
movea.l kbshift,a0
tst.l a0
BEQ notest
btst #2,(a0) ; ctrl ??
bne end_vbl ; dann nichts tun
notest: move.w #-1,$4EE ; habs gelesen
move.w #1,althelp
move.l $4ba,ah_time
end_vbl: rts
kbshift: DC.L 0
DATA
althelp: DC.W 0
ah_time: DC.L 0
;-------------------------------